Advances in semiconductor processing and logic design have permitted an increase in the amount of logic that may be present on integrated circuit devices. As a result, computer system configurations have evolved from a single or multiple integrated circuits in a system to multiple hardware threads, multiple cores, multiple devices, and/or complete systems on individual integrated circuits. Additionally, as the density of integrated circuits has grown, the power requirements for computing systems (from embedded systems to servers) have also escalated. Furthermore, software inefficiencies, and its requirements of hardware, have also caused an increase in computing device energy consumption. In fact, some studies indicate that computing devices consume a sizeable percentage of the entire electricity supply for a country, such as the United States of America. As a result, there is a vital need for energy efficiency and conservation associated with integrated circuits. These needs will increase as servers, desktop computers, notebooks, Ultrabooks™, tablets, mobile phones, processors, embedded systems, etc. become even more prevalent (from inclusion in the typical computer, automobiles, and televisions to biotechnology).
In a multiprocessor system, latency of an access to a remote processor is determined by the remote processor's frequency, more specifically a frequency of a non-core portion of the processor, often referred to as an uncore. Standard power management features reduce uncore frequency when cores are inactive. This creates a scenario such that when cores of one processor seek to access another processor and the remote processor has idle/inactive cores (and thus low uncore frequency), this low remote frequency will cause an increase in the response time. While the remote processor can maintain a fixed frequency for this uncore frequency, this can increase power consumption and still may not resolve the problem of high latency, particularly in low bandwidth workloads.